package com.netx.cubigraf.servlets;
import java.io.IOException;
import com.netx.ebs.EbsRequest;
import com.netx.ebs.EbsResponse;
import com.netx.ebs.TemplateValues;
import com.netx.cubigraf.entities.Facturas;
import com.netx.cubigraf.entities.Referencia;
import com.netx.data.Connection;
import com.netx.data.DatabaseException;
import com.netx.generics.sql.Row;
import com.netx.generics.sql.Table;
import com.netx.generics.util.Strings;
import java.util.ArrayList;
import java.util.List;
import com.netx.cubigraf.entities.Entities;


public class SrvFacturacaoVerFicha extends CubigrafServlet {

	public SrvFacturacaoVerFicha() {
		super("facturacao-ver");
	}

	protected void doGet(EbsRequest request, EbsResponse response) throws IOException, DatabaseException {
		int codigo_factura = new Integer(request.getParameter("codigo")).intValue();
		Connection c = request.getDatabaseConnection();
		Facturas facturas = Entities.getFacturas(c);
		Table[] result = facturas.verFactura(codigo_factura);
		Table factura = result[0];
		Table linhas = result[1];

		TemplateValues tv = new TemplateValues();
		tv.put("numero_factura", factura.getString(1, 0));
		tv.put("cliente", factura.getString(2, 0));
		
		List<TemplateValues> lfData = new ArrayList<TemplateValues>();
		double total = 0;
		for(int i=0; i<linhas.getRowCount(); i++) {
			TemplateValues tvLf = new TemplateValues();
			Row row = linhas.getRow(i);
			Referencia ref = new Referencia(row.getDate(2), row.getInt(1));
			tvLf.put("referencia", ref.toString());
			tvLf.put("nome", row.getString(3), true);
			tvLf.put("numero_cores", row.getString(4)+"C");
			String medidas = row.getString(5)+"x"+row.getString(6);
			tvLf.put("medidas", medidas);
			double preco = row.getDouble(7);
			tvLf.put("preco", Strings.valueOf(preco, 0, 2));
			lfData.add(tvLf);
			total += preco;
		}
		tv.putList("linhas_factura", lfData);
		tv.put("total", Strings.valueOf(total, 0, 2));
		
		response.setContentType("text/html");
		response.sendDisableCache();
		response.sendTemplate("facturacao-ver.ficha.tplt", tv);
	}

}
